import rtconfig
from building import *

# get current directory
cwd = GetCurrentDir()

# The set of source files associated with this SConscript file.

src = Split('''
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_hsem.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_exti.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_ipcc.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_cortex.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma_ex.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_mdma.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pwr_ex.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rcc.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rcc_ex.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_gpio.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_adc.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_adc_ex.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dac.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dac_ex.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_i2c.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_i2c_ex.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_tim.c
STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_tim_ex.c
''')

if GetDepend(['RT_USING_SERIAL']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_uart.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_uart_ex.c']

if GetDepend(['RT_USING_USB_HOST']) or GetDepend(['RT_USING_USB_DEVICE']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pccard.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pcd.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_pcd_ex.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_hcd.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_usb.c']

if GetDepend(['RT_USING_CAN']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_can.c']

if GetDepend(['BSP_USING_WWDG']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_wwdg.c']

if GetDepend(['BSP_USING_LPTIM']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_lptim.c']

if GetDepend(['RT_USING_RTC']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rtc.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rtc_ex.c']

if GetDepend(['RT_USING_WDT']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_wwdg.c']

if GetDepend(['RT_USING_SDIO']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_sdmmc.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_sd.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_delayblock.c']

if GetDepend(['RT_USING_AUDIO']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_sai.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_sai_ex.c']
if GetDepend(['BSP_USING_DCMI']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dcmi.c']
    
if GetDepend(['BSP_USING_FMC']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_fmc.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_fsmc.c']

if GetDepend(['BSP_USING_SDRAM']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_sdram.c']

if GetDepend(['BSP_USING_EXT_FMC_IO']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_sram.c']

if GetDepend(['BSP_USING_ON_CHIP_FLASH']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_flash.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_flash_ex.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_flash_ramfunc.c']

if GetDepend(['BSP_USING_LTDC']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_ltdc.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_ltdc_ex.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma2d.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_ll_dma2d.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dsi.c']

if GetDepend(['BSP_USING_FDCAN']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_fdcan.c']

if GetDepend(['BSP_USING_QSPI']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_qspi.c']

if GetDepend(['BSP_USING_SPDIFRX']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spdifrx.c']

if GetDepend(['BSP_USING_DFSDM']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dfsdm.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dfsdm_ex.c']

if GetDepend(['BSP_USING_HASH']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_hash.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_hash_ex.c']

if GetDepend(['BSP_USING_CRC']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_crc.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_crc_ex.c']

if GetDepend(['BSP_USING_RNG']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_rng.c']

if GetDepend(['BSP_USING_CRYP']):
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_cryp.c']
    src += ['STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_cryp_ex.c']

path = [cwd + '/STM32MP1xx_HAL_Driver/Inc',
    cwd + '/CMSIS/Device/ST/STM32MP1xx/Include',
    cwd + '/CMSIS/Core/Include',
    cwd + '/CMSIS/Include']

CPPDEFINES = ['USE_HAL_DRIVER']
group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)

Return('group')
